class User:
    # 类属性
    class_name = '人类'  # 给人类群体使用的称呼
    def fun1(self, name):
        # 添加了一个实例属性：名字
        self.name = name
        # 添加了一个实例属性：年龄
        self.age = 20
        # 添加了一个实例属性：性别
        self.sex = '男'
    def fun2(self):
        self.name = '老六'
        self.birthday = '2000-10-22'
user1 = User()  # 现在还没有实例属性，只有类属性
# print(user1.age)  # 报错，不存在
user1.fun1('张三')  # 方法内部在添加实例属性
print(f'名字：{user1.name},年龄：{user1.age},性别：{user1.sex}')
# print(user1.birthday)  # 报错，不存在
user2 = User()  # 现在还没有实例属性，只有类属性
user2.fun2()  # 会添加姓名和生日实例属性
print(f'姓名：{user2.name},生日：{user2.birthday}')
# 同一个类的不同实例，实例属性可以不同
# print(user1.birthday)  # 报错
user1.birthday = '2001-11-03'  # 动态添加实例属性
print(f'生日：{user1.birthday}')  # 打印生日

# 操作类属性
# 访问类属性
print(User.class_name)  # 类名访问
print(user1.class_name)  # 对象访问，继承类中的类属性
# 修改类属性
User.class_name = '地球人'  # 使用类名修改
print(user1.class_name)
print(user2.class_name)
user1.class_name = '原始人'  # 使用对象修改类属性，只会影响自己的属性值
print(User.class_name)  # 地球人
print(user1.class_name)  # 原始人
print(user2.class_name)  # 地球人